#!/net/cdware/export/home/cdware/lab/bin/perl 
# ------------------------------------------------------------

# update.pl, by Jean-Pierre Girard (jpg@corrado.sun.com)
# This allows the user to edit or create the _info file
# necessary for the SunSolutions.
# version 1.0, Feb, 20 1996
# ------------------------------------------------------------

# Bugs and other fixes

# ------------------------------------------------------------
%Special = (
"internet", "596,200"
,"Sun", "596,167"
);
#
# Below are fields delimited by ^.
# field 1: Full category name
# field 2: Category image name
# field 3: Category header height (if other than default)
# field 4:
# field 5:
#
%MainCat = (
"access", "Internet Access^intacc.gif^"
, "service", "Services for the Internet^intserv.gif^"
, "commerce", "Internet Commerce^intcomm.gif^"
, "publishing", "Internet Publishing^intpub.gif^"
, "intsecurity", "Internet Security^intsec.gif^"
#Added Specifically for March 97 Issue
, "intauth", "Internet Authoring/Java^intauth.gif^"
, "intcontmgt", "Internet Content Management^intcontmgt.gif^"
, "intdbconn", "Internet Database Connectivity^intdbconn.gif^"
, "intemail", "Internet Email^intemail.gif^"
, "intgrpware", "Internet Groupware/Document Flow^intgrpware.gif^"
, "intoffprod", "Internet Office Productivity^intoffprod.gif^"
, "intprodauth", "Internet Production/Authoring^intprodauth.gif^"
, "intsrcheng", "Internet Search Engines^intsrcheng.gif^"
, "intstemgt", "Internet Site Management^intstemgt.gif^"
, "intswdev", "Internet Software Development Tools^intswdev.gif^"
, "intwebad", "Internet Web Advertising^intwebad.gif^"
, "intwebcms", "Internet Web CMS^intwebcms.gif^"
, "intwebdw", "Internet Web Datawarehouse^intwebdw.gif^"
, "intwebmon", "Internet Web Monitoring^intwebmon.gif^"
, "intwebserv", "Internet Web Server^intwebserv.gif^"
, "intwebste", "Internet Web Site^intwebste.gif^"
, "intwebvideo", "Internet Web Video^intwebvideo.gif^"
, "intwebvoice", "Internet Web Voice^intwebvoice.gif^"
#Main Categories from March 97 front GUI
, "Hardware", "^hard.gif^"
, "Services", "^serv.gif^"
, "companies", "^comps.gif^"
, "Sun", "Search Sun Products <form method=get ACTION=http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions></font><input type=text name=isindex size=15>^sprods.gif^"
#These are Software subs
,"archive", "Archiving, Storage Management & Backup Solutions^sstormn.gif^"
,"business", "Business Solutions^sbizsol.gif^"
, "cad_cae", "Computer Aided Design/Engineering^scade.gif^"
, "catalogs", "Catalogs^scata.gif^"
, "client_server", "Client/Server Solutions^sclnt.gif^"
, "desktop_apps", "Desktop Applications^sdesk.gif^220"
, "diag_flow", "Diagramming and Flowcharting^sdiaflo.gif^"
, "doc_mgt", "Document Management^sdocmn.gif^"
, "epubs", "Electronic Publishing^selecpb.gif^"
, "graphics_imaging", "Graphics and Imaging^sgfximg.gif^"
, "info_mgt", "Information Management^sinfomn.gif^"
, "multimedia", "Multimedia^smulti.gif^"
, "networking", "Networking^snetwk.gif^"
, "security", "Security^ssecu.gif^"
, "sw_eng", "Software Engineering^ssfteng.gif^"
, "sys_admin", "System Administration^ssysad.gif^"
, "telco", "Telecommunications^stelco.gif^"
, "training", "Training^strain.gif^"
#Added for March 97 Issue
, "financial", "Financial Services^financial.gif^220"
, "utilities", "Utilities^utilities.gif^220"
);

%Categories = (
"access", "Internet Access"
, "service", "Services for the Internet"
, "commerce", "Internet Commerce"
, "publishing", "Internet Publishing"
, "intsecurity", "Internet Security"
#Added Specifically for March 97 Issue
, "intauth", "Internet Authoring/Java"
, "intcontmgt", "Internet Content Management"
, "intdbconn", "Internet Database Connectivity"
, "intemail", "Internet Email"
, "intgrpware", "Internet Groupware/Document Flow"
, "intoffprod", "Internet Office Productivity"
, "intprodauth", "Internet Production/Authoring"
, "intsrcheng", "Internet Search Engines"
, "intstemgt", "Internet Site Management"
, "intswdev", "Internet Software Development Tools"
, "intwebad", "Internet Web Advertising"
, "intwebcms", "Internet Web CMS"
, "intwebdw", "Internet Web Datawarehouse"
, "intwebmon", "Internet Web Monitoring"
, "intwebserv", "Internet Web Server"
, "intwebste", "Internet Web Site"
, "intwebvideo", "Internet Web Video"
, "intwebvoice", "Internet Web Voice"
#Main Categories from March 97 front GUI
, "Hardware", ""
, "Services", ""
, "companies", ""
, "Sun", "Search Sun Products <form method=get ACTION=http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions></font><input type=text name=isindex size=15>"
#These are Software subs
,"archive", "Archiving, Storage Management & Backup Solutions"
,"business", "Business Solutions"
, "cad_cae", "Computer Aided Design/Engineering"
, "catalogs", "Catalogs"
, "client_server", "Client/Server Solutions"
, "desktop_apps", "Desktop Applications"
, "diag_flow", "Diagramming and Flowcharting"
, "doc_mgt", "Document Management"
, "epubs", "Electronic Publishing"
, "graphics_imaging", "Graphics and Imaging"
, "info_mgt", "Information Management"
, "multimedia", "Multimedia"
, "networking", "Networking"
, "security", "Security"
, "sw_eng", "Software Engineering"
, "sys_admin", "System Administration"
, "telco", "Telecommunications"
, "training", "Training"
#Added for March 97 Issue
, "financial", "Financial Services"
, "utilities", "Utilities"
);
##############################################################################
# getField 
##############################################################################

sub getField
{
local($string1, $string2) = @_;
$count=0;
$string1 =~ s/\^/\n/g;
@elements = split(/\n/, $string1);
  foreach $item (@elements) {
  $count++;
    if ($count eq $string2) {
    $return=$item;
    }
    if ($string2 < 1 | $string2 > $count ) {
        $return = "Invalid Field number";
    }
  }  
  $return;
}

##############################################################################
# PrintHtml:
##############################################################################
sub PrintHtml
{
	local($StrHtml1, $Str, $StrHtml2) = @_;
	
	if ($HTML_FORMAT eq "true") {
		print STDOUT $StrHtml1;
	}

	print STDOUT $Str;

	if ($HTML_FORMAT eq "true") {
		print STDOUT $StrHtml2;
	}
}
##############################################################################
# CheckLinks:
##############################################################################
sub CheckLinks
{
	&PrintHtml("<BR>", "\nChecking links1...\n", "<BR>");
	$ListDir = `cd $PRODUCTS_DIR; ls`;
	$ListDir =~ s/gui|SunSolutions|DEV|hotjava|tempjas|temp//g;
	#$ListDir =~ s/\n+/ /g;
	@dirfields = split(/\s+/, $ListDir);
	foreach $Dir (@dirfields) {
		if ($Dir =~ /SunSolutions|DEV/) {
			next;
		}
		&PrintHtml("<DD><DD>",  "\t\tTesting $Dir ...\n", "<BR>");
		$ListFiles = `find "$PRODUCTS_DIR/$Dir" -name "*.html" -print`;
		$ListFiles .= `find "$PRODUCTS_DIR/$Dir" -name "*.htm" -print`;
		#$ListDir =~ s/gui|SunSolutions|DEV|hotjava|tempjas|temp//g;
		@filefields = split(/\s+/, $ListFiles);
		foreach $File (@filefields) {
			if ($File =~ /SunSolutions.(frame|head).html/) {
				next;
			}
			#&PrintHtml("<DD><DD>",  "\t\tTesting $File ...\n", "<BR>");
			if (open (HTMLFILE, $File)) {
				while(<HTMLFILE>) {
					chop;
					$Line = $_;
					$LinePrint = $Line;
					if ($HTML_FORMAT eq "true") {
						$LinePrint =~ s/</&lt;/g;
						$LinePrint =~ s/>/&gt;/g;
					}
					if ($Line =~ /HREF/i) {
						$Ref = $Line;
						$Ref =~ s/.*HREF *= *"?([^" >#]*)[" >#].*/\1/i;
						if ($Ref =~ /HrefButtonArea/) {
							$Ref =~ s/.*HrefButtonArea,\d+,\d+,\d+,\d+,([^" >]*)/\1/;
						}
						#print "\t$Line\n\t->$Ref\n";
						if ($Ref eq $Line) {
							&PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
							&PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
						}
						if ($Ref eq "" && $Line !~ /HREF *= *"?\#/i) {
							&PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
							&PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
						}
						if ($Ref !~ /mailto:|ftp:|http:\/\/|req_more_info.pl/i || $Ref =~ /http:\/\/localhost/) {
						#if ($Ref !~ /mailto:|ftp:|http:\/\/[^l]|req_more_info.pl/i) {
							#print "->$Ref\n";
							$ShortDir = $File;
							$ShortDir =~ s?(.*\/)[^/]*$?\1?;
							if ($Ref =~ /http:\/\/localhost/i) {
								$Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
								#print "\t\tin http:$ShortDir/$Ref from $File\n";
								if ($Ref !~ /cgi-bin/ && ! -s "$ShortDir/$Ref") {
									&PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
								}
							} elsif ($Ref =~ /file:/i) {
								$Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
								#print "\t\tin file: $Ref from $File\n";
								unless (-s "$Ref") {
									&PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
								}
							} else {
								#print "\t\tin else: $ShortDir/$Ref from $File\n";
								if ($Ref !~ /^#/) {
									unless ($Ref !~ /^#/ && -s "$ShortDir/$Ref") {
										&PrintHtml("<B>", "ERROR: Missing link $Ref from $File. Line = $LinePrint\n", "</B><BR>");
									}
								}
							}
						}
						
					}
					if ($Line =~ /<IMG/i) {
						$Ref = $Line;
						$Ref =~ s/.*IMG.*SRC *= *"?([^" >]*)[" >].*/\1/i;
						#print "\t$Line\n\t->$Ref\n";
						if ($Ref eq $Line) {
							&PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
							&PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
						}
						if ($Ref eq "") {
							&PrintHtml("<B>",  "ERROR: Bug? in update.pl. File=$File\n", "</B><BR>");
							&PrintHtml("<DD>",  "\t$LinePrint\n\t->$Ref\n", "<BR>");
						}
						#print "->$Ref\n";
						$ShortDir = $File;
						$ShortDir =~ s?(.*\/)[^/]*$?\1?;
						if ($Ref =~ /http:\/\/localhost/i) {
							$Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
							#print "\t\tin http:$ShortDir/$Ref from $File\n";
							if ($Ref !~ /cgi-bin/ && ! -s "$ShortDir/$Ref") {
								&PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
							}
						} elsif ($Ref =~ /file:/i) {
							$Ref =~ s?http://localhost:7999/(.*)$?$PRODUCTS_DIR/\1?;
							#print "\t\tin file: $Ref from $File\n";
							unless (-s "$Ref") {
								&PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
							}
						} else {
							#print "\t\tin else: $ShortDir/$Ref from $File\n";
							if ($Ref !~ /^#/) {
								unless ($Ref !~ /^#/ && -s "$ShortDir/$Ref") {
									&PrintHtml("<B>", "ERROR: Missing image $Ref from $File. Line = $LinePrint\n", "</B><BR>");
								}
							}
						}
						
					}
					#$Line =~ tr/
				}
				close(HTMLFILE);
			} else {
				&PrintHtml("<B>",  "ERROR: $File cannot be open\n", "</B><BR>");
			}
		}
	}
}
##############################################################################
# CheckFiles:
##############################################################################
sub CheckFiles
{
	$ListDir = `cd $PRODUCTS_DIR; ls`;
	$ListDir =~ s/gui|SunSolutions|DEV|hotjava|tempjas|temp//g;
	#$ListDir =~ s/\n+/ /g;
	@filefields = split(/\s+/, $ListDir);
	foreach $Dir (@filefields) {
		unless (-s "$PRODUCTS_DIR/$Dir/_info") {
			&PrintHtml("", "WARNING: _info file missing in $Dir\n", "<BR>");
		}
	}
	#print $ListDir;
}

##############################################################################
# InitCompInfo:
##############################################################################
sub InitCompInfo
{
	#$ListDir = `ls $PRODUCTS_DIR/[CD]*/_info`;
	$ListDir = `ls $PRODUCTS_DIR/*/_info`;
	#print "ls $PRODUCTS_DIR/*/_info";

	@filefields = split(/\s+/, $ListDir);
	#print $filefields;
	foreach $INFOFILENAME (@filefields) {
		$ShortDir = $INFOFILENAME;
		$ShortDir =~ s?.*/([^/]*)/_info$?\1?;
		if (-l "$PRODUCTS_DIR/$ShortDir") {
			next;
		}
		if (-s $INFOFILENAME && open (INFOFILE, $INFOFILENAME)) {
			if ($REPORT ne "true") {
				#&PrintHtml("<DD><DD>", "\t\tReading $INFOFILENAME\n", "<BR>");
			}
	
                	while (<INFOFILE>) {
                		$Line = $_;
				unless ($Line =~ /^[ 	]*$/ || $Line =~ /^#/) {
					last;
				}
			}
                	($Companies{$ShortDir}, $Description{$ShortDir}, $Platform{$ShortDir}, $ChosenCat{$ShortDir}, $WebSite{$ShortDir}, $Email{$ShortDir}, $HomePageName{$ShortDir}) = split(/\^/, $Line);

			if ($CHECK eq "true") {
				$_ = $Line;
				#print "Line=$Line\n";
				$count = tr/^//;
				#print "$_: $count\n";
				if ($count != 7) {
					&PrintHtml("<B>", "ERROR: Not the correct number of parameters in the first line of $INFOFILENAME\n", "<BR>");
				}
				if ($Platform{$ShortDir} =~ /demo|testdrive|install/ && ! -d "$PRODUCTS_DIR/$ShortDir/_install") {
					&PrintHtml("<B>", "ERROR: Missing _install directory in $ShortDir\n", "<BR>");
				}
				if ($HomePageName{$ShortDir} eq "") {
					&PrintHtml("<B>", "ERROR: Missing Home page name in $ShortDir\n", "<BR>");
				} else {
					unless (-s "$PRODUCTS_DIR/$ShortDir/$HomePageName{$ShortDir}") {
						&PrintHtml("<B>", "ERROR: $HomePageName{$ShortDir} file missing in $ShortDir\n", "<BR>");
					}
				}
			}
			$ProdNum = 1;
                	while (<INFOFILE>) {
				if ($_ =~ /^[ 	]*$/ || $_ =~ /^#/) {
					next;
				}
				if ($CHECK eq "true") {
					unless ($_ =~ /^.*[^ 	].*\^$/) {
						chop($_);
						&PrintHtml("<B>", "ERROR: Wrong line in $INFOFILENAME: \"$_\"\n", "<BR>");
					}
				}
                        	$Product=$_;
                        	chop($Product);
                        	chop($Product);
                        	$Products{$ShortDir . $ProdNum} = $Product;
				#print "jp = $Product\n";
				$ProdNum++;
                	}
			close(INFOFILE);
        	} else {
                	&PrintHtml("", "Can't open $INFOFILENAME\n", "<BR>");
		}
	}
	#foreach $ShortDir (sort keys(%Companies)) {
		#print "$Companies{$ShortDir}, $Description{$ShortDir}, $Platform{$ShortDir}, $ChosenCat{$ShortDir}, $WebSite{$ShortDir}, $Email{$ShortDir}, $HomePageName{$ShortDir}\n";
	#}
	#%RevComp = reverse %Companies;
	#if (@RevComp != @Companies) {
		#print "WARNING: two directory with the same company name->possible problem!\n";
	#}
	%RevProd = reverse %Products;
	if (@RevProd != @Products) {
		&PrintHtml("", "WARNING: two products with the same name->possible problem!\n", "<BR>");
	}
	#print @Products;
	foreach $ShortDir (sort keys(%Products)) {
		print "$ShortDir, $Products{$ShortDir}\n";
	}
	#foreach $ShortDir (sort keys(%RevProd)) {
		#print "$ShortDir, $RevProd{$ShortDir}\n";
	#}
	#foreach $ShortDir (sort keys(%RevComp)) {
		#print "$RevComp{ShortDir}\n";
	#}
	#print %RevComp;
}

sub FilteredSortCat
{
	($al = $Categories{$a}) =~ tr/A-Z/a-z/;
	$al =~ s/^the //;
	$al =~ s/^\.//;
	$al =~ s/^[ 	]*//;

	($bl = $Categories{$b}) =~ tr/A-Z/a-z/;
	$bl =~ s/^the //;
	$bl =~ s/^\.//;
	$bl =~ s/^[ 	]*//;

	$al cmp $bl;
}
sub FilteredSort
{
	($al = $a) =~ tr/A-Z/a-z/;
	$al =~ s/^the //;
	$al =~ s/^\.//;
	$al =~ s/^[ 	]*//;

	($bl = $b) =~ tr/A-Z/a-z/;
	$bl =~ s/^the //;
	$bl =~ s/^\.//;
	$bl =~ s/^[ 	]*//;

	$al cmp $bl;
}
sub FilteredSortComp
{
	$al = $Companies{$a};
	$al =~ tr/A-Z/a-z/;
	$al =~ s/^the //;
	$al =~ s/^\.//;
	$al =~ s/^[ 	]*//;

	$bl = $Companies{$b};
	$bl =~ tr/A-Z/a-z/;
	$bl =~ s/^the //;
	$bl =~ s/^\.//;
	$bl =~ s/^[ 	]*//;

	#print STDOUT "$al =? $bl\n";
	$al cmp $bl;
}

##############################################################################
# CreateSoft
##############################################################################
sub CreateSoft
{
	&PrintHtml("<BR>", "\nCreating Software page...\n", "<BR>");
	$SOFTFILENAME = "$CAT_DIR/Software.html";
	$SOFTHEADFILENAME = "$CAT_DIR/Software.head.html";
	if (open (SOFTFILE, "> $SOFTFILENAME") && open(SOFTHEADFILE, "> $SOFTHEADFILENAME")) {
		$old = select(SOFTHEADFILE);
		$~ = "SOFTWAREHEAD"; 
		write SOFTHEADFILE;   
		close (SOFTHEADFILE); 

		select(SOFTFILE);
		$~ = "CATBEGIN";
		write SOFTFILE;

		$Letter = "0";
		foreach $Cat (sort FilteredSortCat keys(%Categories)) {
			unless ($Categories{$Cat} eq "") {
				$CatAb = $Categories{$Cat};
				$CatAb =~ tr/a-z/A-Z/;
				$CatAb =~ s/^THE //;
				$CatAb =~ s/^\.//;
				#print STDOUT "$CatAb, $Letter\n";
				unless ($CatAb =~ /^$Letter/) {
					$Letter = substr($CatAb, 0, 1);
					print SOFTFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
					#push (@Letters, $Letter);

				}
  				#height of each category head, default 150			
			        if (&getField($MainCat{$Cat}, "3") == "") {
				     $height = "150";
				} else {
				     $height = &getField($MainCat{$catword}, "3");
				}	
				print SOFTFILE "<DD><a href=\"http://localhost:7999/cgi-bin/show.bat/?DEST=$Cat&SIZE=$height\"><B>$Categories{$Cat}</B></a><br>\n";
			}
		}
		$~ = "CATEND";
		write SOFTFILE;

		close (SOFTFILE);
		select($old);
	}
	&PrintHtml("<DD>", "\tSoftware.html page created.\n", "<BR>");
}

##############################################################################
# CreateCat: 
##############################################################################
sub CreateCat
{

	foreach $catword  ( sort keys(%Categories)) {
		#chop $catword;
		&PrintHtml("<BR>", "\nCreating $catword category page ...\n", "<BR>");
         	$CATFILENAME = "$CAT_DIR/$catword.html";
         	$CATHEADFILENAME = "$CAT_DIR/$catword.head.html";
		#print STDOUT "Bef open, $CATFILENAME, $CATHEADFILENAME\n";
		if (open (CATFILE, "> $CATFILENAME") && open(CATHEADFILE, "> $CATHEADFILENAME")) {
			$old = select(CATFILE);

			$~ = "CATBEGIN";
			write CATFILE;
			$Letter = "0";
			@Letters = ();
			foreach $ShortName (sort FilteredSortComp keys(%Companies)) {
				$Comp = $Companies{$ShortName};
				#print STDOUT "$ShortName, $Comp\n";
				
				unless ($ChosenCat{$ShortName} =~ /$catword/ 
					|| $catword eq "companies") {
					next;
				}
				$CompAb = $Comp;
				$CompAb =~ tr/a-z/A-Z/;
				$CompAb =~ s/^THE //;
				$CompAb =~ s/^\.//;
				unless ($CompAb =~ /^$Letter/) {
					$Letter = substr($CompAb, 0, 1);
					print CATFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
					push (@Letters, $Letter);
				}

        			#print CATFILE "     <DD><a HREF=http://localhost:7999/$ShortName/$HomePageName{$ShortName}><B>$Comp</B></a> $Description{$ShortName}\n";
        			print CATFILE "     <DD><a HREF=http://localhost:7999/$ShortName/$FRAMEBASICNAME><B>$Comp</B></a> $Description{$ShortName}\n";
                                print "<dd><b><i>", $Products{$ShortName . "1"}, "</i></b>\n" ;                             
                                if ($Products{$ShortName . "2"} ne "") {
                                        print ", <b><i>", $Products{$ShortName . "2"}, "</i></b>\n" ;
                                }
                                if ($Products{$ShortName . "3"} ne "") {
                                        print ", <b><i>", $Products{$ShortName . "3"}, "</i></b>\n" ;
                                }
                                if ($Products{$ShortName . "4"} ne "") {
                                        print ", <b><i>", $Products{$ShortName . "4"}, "</i></b>\n" ;
                                }
                                if ($Products{$ShortName . "5"} ne "") {
                                        print ", <b><i>", $Products{$ShortName . "5"}, "</i></b>\n" ;
                                }
#
#		This is for testdrive, install, and demo images
#
				if ($Platform{$ShortName} =~ /demo/ ) {
				print CATFILE "<img src=\"http://localhost:7999/SunSolutions/images/demo.gif\">";
				}
                                if ($Platform{$ShortName} =~ /testdrive/ ) { 
                                print CATFILE "<img src=\"http://localhost:7999/SunSolutions/images/testdrive.gif\">";
                                } 
                                if ($Platform{$ShortName} =~ /install/ ) { 
				print CATFILE "<img src=\"http://localhost:7999/SunSolutions/images/install.gif\">";
                                } 
				print CATFILE "\n";

        		}
		 
		
			$~ = "CATEND";
			write CATFILE;
			close (CATFILE);
		
			if ($Special{$catword} eq "") {
				$AppWidth="596"; 
			 	$AppHeight="75";
			} else {
				@tmp=split(/,/,$Special{$catword});
                                $AppWidth=@tmp[0]; 
				$AppHeight=@tmp[1];
			} 
				
                        #&PrintHtml("<DD>", "\ttest $AppWidth $AppHeight $Special{$catword} $catword\n", "<BR>");

			select(CATHEADFILE);
			$~ = "CATHEADERBEGIN";
			write CATHEADFILE;
                $GI = &getField($MainCat{$catword}, "2");
		print CATHEADFILE "<IMG border=0 SRC=\"$DIR_IMAGES/$GI\"  alt=\"\" USEMAP=#banner ismap>";
		#if ($catword ne "companies") {
		#	print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=27,4,96,44>\n";
		#} else {
		print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=7,12,69,40>\n";
		#}
		print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=products\" COORDS=3,48,69,80>\n";
		#if ($catword ne "Hardware") {
		#print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Hardware\" COORDS=96,0,165,40>\n";
		#} else {
		print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/docs\/info\/Info.html\" COORDS=73,6,142,46>\n";
		#}
		#if ($catword ne "Services" && $catword ne "companies" && $catword ne "internet") {
	        #		print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Services\" COORDS=96,38,165,78>\n";
		#} else {
			print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/index.html\" COORDS=72,40,143,85>\n";
		#}
                #if ($catword eq "Sun") {
		#	print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Sun_Software&SIZE=35\" COORDS=198,85,366,170>\n";
		#	print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=Sun_Hardware&SIZE=35\" COORDS=401,85,575,170>\n";
		#}
		#if ($catword eq "internet") {
		#print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"../.Internet/cover.htm\" COORDS=180,0,596,166>\n";
		#} else {
		#print CATHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http://localhost:7999/SunSolutions/index.html\" COORDS=198,0,596,62>\n";
#}
		$~ = "CATHEADERMIDDLE";
		write CATHEADFILE;

        		#print CATHEADFILE `cat $Header{$catword}`;
			unless ($Categories{$catword} eq "") {

#Commented out on 1/20/97 Jason for March 97

        			#print CATHEADFILE "<CENTER><FONT SIZE=24>$Categories{$catword}</FONT></CENTER>";
			}
#Comment STOP Here Jason
	
			#@Letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
			if (@Letters > 7) {
				print CATHEADFILE "<B>Go to:&nbsp&nbsp";
				foreach $letter (@Letters) {
					print CATHEADFILE "<A HREF=\"?DEST=$catword&L=$letter" . ($Categories{$catword} eq ""? "" : "&SIZE=180") . "\">$letter</A>\n";
				}
			}
#Added by Jason 1/20/97 for March 97 Category Owners
			if ($catword eq "financial") {
			print CATHEADFILE "<center><img src=/SCO/ad/ad.gif></center>";
			}
			$~ = "CATHEADEREND";
			write CATHEADFILE;
			close (CATHEADFILE);
	 
			&PrintHtml("<DD>", "\t$catword category page created.\n", "<BR>");

			select($old);
		} else {
			die "\nERROR: Cannot write $CATFILENAME or $CATHEADFILENAME!\nTry to be superuser!\n\n";
		}
	}
}

##############################################################################
# CreateReport:
##############################################################################
sub CreateReport
{
	$TotalSize = 0;
	foreach $ShortName (sort FilteredSortComp keys(%Companies)) {
		#$ShortName = $RevComp{$Comp};	
		$Comp = $Companies{$ShortName};
		&PrintHtml("<B>", "$Comp:\n", "</B><BR>");
		&PrintHtml("<DD>", "\tProduct1: " . $Products{$ShortName . "1"} . "\n", "<BR>");
		if ($Products{$ShortName . "2"} ne "") {
			&PrintHtml("<DD>", "\tProduct2: " . $Products{$ShortName . "2"} . "\n", "<BR>");
		}
		if ($Products{$ShortName . "3"} ne "") {
			&PrintHtml("<DD>", "\tProduct3: " . $Products{$ShortName . "3"} . "\n", "<BR>");
		}
		if ($Products{$ShortName . "4"} ne "") {
			&PrintHtml("<DD>", "\tProduct4: " . $Products{$ShortName . "4"} . "\n", "<BR>");
		}
		if ($Products{$ShortName . "5"} ne "") {
			&PrintHtml("<DD>", "\tProduct5: " . $Products{$ShortName . "5"} . "\n", "<BR>");
		}
		$Size = `du -ks $PRODUCTS_DIR/$ShortName`;
		chop $Size;
		$Size =~ s/(\d*).*/\1/;
		&PrintHtml("<DD>", "\tTotal size: $Size Kb\n", "<BR>");
		$TotalSize += $Size;
		if ( $Platform{$ShortName} =~ /demo|testdrive|install/) {
			&PrintHtml("<DD>", "\t", "");
			if ($Platform{$ShortName} =~ /demo/) {
				&PrintHtml("", "Slide-show, ", "");
			}
			if ($Platform{$ShortName} =~ /testdrive/) {
				&PrintHtml("", "Demo version, ", "");
			}
			if ($Platform{$ShortName} =~ /install/) {
				&PrintHtml("", "Unlockable version, ", "");
			}
			&PrintHtml("", "\n", "<BR>");
		}
	}
	&PrintHtml("<BR><BR>", "\n\nTotal size for all companies: $TotalSize Kb\n", "<BR>");
	$Size = `du -ks $PRODUCTS_DIR/$ShortName`;
	chop $Size;
	$Size =~ s/(\d*).*/\1/;
	&PrintHtml("", "Total size for .products: $Size Kb\n", "<BR>");
}

##############################################################################
# CreateApplet:
##############################################################################
sub CreateApplet
{
	&PrintHtml("", "\nBuilding Control bar applets ...\n", "<BR>");
	$TmpFile = "/tmp/tmpupdateapplet";
	foreach $Comp (sort keys(%Companies)) {
		$FRAMEFILENAME = "$PRODUCTS_DIR/$Comp/$FRAMEBASICNAME";
		if (open (FRAMEFILE, "> $FRAMEFILENAME")) {
			print FRAMEFILE "<html> <head>\n<title>Sun Solutions October 1996: $Companies{$Comp}</title>\n</head>\n<FRAMESET ROWS=\"50,*\">\n<FRAME SCROLLING=\"no\" TARGET=\"_top\" NAME=\"menu\" NORESIZE SRC=\"SunSolutions.head.html\">\n<FRAME SCROLLING=\"yes\" NAME=\"content\" NORESIZE MARGINHEIGHT=4 SRC=\"$HomePageName{$Comp}\">\n</BODY> </NOFRAME> </FRAMESET> </HTML>\n";
			close(FRAMEFILE);
		} else {
			&PrintHtml("", "ERROR: Couldn't write $FRAMEFILENAME\n", "<BR>");
		}

		$HEADFILENAME = "$PRODUCTS_DIR/$Comp/$HEADBASICNAME";
		if (open (HEADFILE, "> $HEADFILENAME")) {
			print HEADFILE "<html> <head>\n<title>Sun Solutions October 1996</title>\n</head>\n<BODY BACKGROUND=../SunSolutions/images/back3.gif>\n<CENTER>\n<applet code=ImageMap.class width=596 height=36>\n<param name=highlight value=\"brighter60\">";
			
			$TestGif = 0;
			if ($Platform{$Comp} =~ /demo/) {
				$TestGif ++;
			}
			if ($Platform{$Comp} =~ /testdrive/) {
				$TestGif += 2;
			}
			if ($Platform{$Comp} =~ /install/) {
				$TestGif += 4;
			}
			@BarFileNames = ("none", "rd", "td", "tdrd", "ts", "tsrd", "tdts", "samplebar");
			print HEADFILE "<param name=img value=\"$PRODUCTS_DIR/SunSolutions/images/$BarFileNames[$TestGif].gif\">\n";

			print HEADFILE "<param name=area1 value=\"HrefButtonArea,0,0,80,35,http://localhost:7999/cgi-bin/show.bat/?DEST=companies\" >\n";
			print HEADFILE "<param name=area2 value=\"HrefButtonArea,81,0,84,35,http://localhost:7999/SunSolutions/search.html\" >\n";
			print HEADFILE "<param name=area3 value=\"HrefButtonArea,164,0,83,35,http://localhost:7999/SunSolutions/docs/info/Info.html\" >\n";
			print HEADFILE "<param name=area4 value=\"HrefButtonArea,267,0,85,35,http://localhost:7999/cgi-bin/req_more_info.pl?$Comp\" >\n";

			$Area = 5;
			if ($Platform{$Comp} =~ /demo/) {
				print HEADFILE "<param name=area$Area value=\"HrefButtonArea,350,0,83,35,http://localhost:7999/$Comp/_install/install_show.sh\">\n";
				$Area ++;
			}
			if ($Platform{$Comp} =~ /testdrive/) {
				print HEADFILE "<param name=area$Area value=\"HrefButtonArea,434,0,81,35,http://localhost:7999/$Comp/_install/run.sh\">\n";
				$Area ++;
			}
			if ($Platform{$Comp} =~ /install/) {
				print HEADFILE "<param name=area$Area value=\"HrefButtonArea,515,0,83,35,http://localhost:7999/$Comp/_install/install.sh\">\n";
			}
			
			print HEADFILE "</applet> </CENTER> </BODY> </HTML>\n";


			close(HEADFILE);
		} else {
			&PrintHtml("", "ERROR: Couldn't write $HEADFILENAME\n", "<BR>");
		}

         	#$HOMEFILENAME = "../$Comp/" . $HomePageName{$ShortDir};
		#if (open (HOMEFILE, "$HOMEFILENAME")) {
			#open (TMPFILE, "$TmpFile");
			#while (<TMPFILE>) {
				#$Line = $_;
				#if ($Line =~ /^<applet class=cdbar/i) {
					#while (! <HOMEFILE> =~ /^<\/applet>/i) {
					#}
					#$TestGif = 0;
					#if ($Platform{$Comp} =~ /demo/) {
						#$TestGif ++;
					#}
					#if ($Platform{$Comp} =~ /testdrive/) {
						#$TestGif ++;
					#}
					#if ($Platform{$Comp} =~ /install/) {
						#$TestGif ++;
					#}
					#print TMPFILE "<app class=CDbar img=\"http://localhost:7999/SunSolutions/images/none.gif";
					#print TMPFILE "highlight=brighter60";
##			print "area1=HrefButtonArea,0,0,80,35,http://localhost:7999/SunSolutions/index.html" >> applet
##			print "area2=HrefButtonArea,81,0,84,35,http://localhost:7999/.categories/companies.html" >> applet
##			print "area3=HrefButtonArea,164,0,83,35,http://localhost:7999/SunSolutions/docs/info/Info.html" >> applet
##			print "area4=HrefButtonArea,267,0,85,35,http://localhost:7999/DEV/disabled.html" >> applet
##			print ">" >> applet
##                        breaksw	
## 
					#next;
				#}
				#print TMPFILE $Line;
			#}
		#}
		#rename($TmpFile, $HOMEFILENAME);
	}
	&PrintHtml("", "\tControl bar applets built...\n", "<BR>");
}
###############################################################################
## CreateNames
###############################################################################
sub CreateNames
{
open (REALNAMES, "> $PRODUCTS_DIR/.bin/real_names.txt");
   write REALNAMES;
	foreach $comp (keys(%Companies)) {
		print REALNAMES "$comp\t$Companies{$comp}\n";
	}
# this is for directories without _info files
   print REALNAMES "SunProducts\tSun Products\n";
   print REALNAMES ".Internet\tInternet Articles\n";
close(REALNAMES);
}

###############################################################################
## CreateProduct
###############################################################################
sub CreateProduct
{
	&PrintHtml("<BR>", "\nCreating Products page...\n", "<BR>");

         $PRODFILENAME = "$CAT_DIR/products.html";
         $PRODHEADFILENAME = "$CAT_DIR/products.head.html";
	if (open (PRODFILE, "> $PRODFILENAME") && open(PRODHEADFILE, "> $PRODHEADFILENAME")) {
		$old = select(PRODFILE);

		$~ = "CATBEGIN";
		write PRODFILE;
		$Letter = "0";
		@Letters = ();
		foreach $Prod (sort FilteredSort keys(%RevProd)) {
			$ShortName = substr($RevProd{$Prod}, 0, length($RevProd{$Prod}) - 1);	
			
			#print STDOUT "        Prod=$Prod, ShortName=$ShortName.\n";
			$ProdAb = $Prod;
			$ProdAb =~ tr/a-z/A-Z/;
			$ProdAb =~ s/^THE //;
			$ProdAb =~ s/^\.//;
			$ProdAb =~ s/^[ 	]*//;
			unless ($ProdAb =~ /^$Letter/) {
				$Letter = substr($ProdAb, 0, 1);
				print PRODFILE "<DT><A NAME=\"$Letter\"><B>$Letter</B></A>";
				push (@Letters, $Letter);
			}

        		#print PRODFILE "<DD><A HREF=http://localhost:7999/$ShortName/$HomePageName{$ShortName}><B>$Prod</B></A> <I>from</I> <B>$Companies{$ShortName}</B>\n";
        		print PRODFILE "<DD><A HREF=http://localhost:7999/$ShortName/$FRAMEBASICNAME><B>$Prod</B></A> <I>from</I> <B>$Companies{$ShortName}</B>";
#
#     this is for testdrive, install, demo icons
#
                                if ($Platform{$ShortName} =~ /demo/ ) {
                                print PRODFILE "<img src=\"http://localhost:7999/SunSolutions/images/demo.gif\">";
                                }
                                if ($Platform{$ShortName} =~ /testdrive/ ) {
                                print PRODFILE "<img src=\"http://localhost:7999/SunSolutions/images/testdrive.gif\">";
                                }
                                if ($Platform{$ShortName} =~ /install/ ) {
                                print PRODFILE "<img src=\"http://localhost:7999/SunSolutions/images/install.gif\">";
                                }
                                print PRODFILE "\n";

        	}
	 
		$~ = "CATEND";
		write PRODFILE;
		close (PRODFILE);

		select(PRODHEADFILE);
		$~ = "CATHEADERBEGIN";
		write PRODHEADFILE;
                print PRODHEADFILE "<IMG border=0 SRC=\"$DIR_IMAGES/products.gif\"  alt=\"\" USEMAP=#banner ismap>";
		print PRODHEADFILE "<MAP Name=\"banner\">";
                print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=companies\" COORDS=7,12,69,40>\n";
                print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"?DEST=products\" COORDS=3,48,69,80>\n";
                print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/docs\/info\/Info.html\" COORDS=73,6,142,46>\n";
                print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http:\/\/localhost:7999\/SunSolutions\/index.html\" COORDS=72,40,143,85>\n";
                print PRODHEADFILE "<AREA SHAPE=\"RECT\" HREF=\"http://localhost:7999/SunSolutions/index.html\" COORDS=200,0,595,74>\n";

		print PRODHEADFILE "</MAP></td><tr><td><center>";
		#$~ = "CATHEADERMIDDLE";
		#write PRODHEADFILE;

        	#print PRODHEADFILE `cat $Header{$catword}`;
		#unless ($Categories{$catword} eq "") {
        		#print PRODHEADFILE "<H1>$Categories{$catword}</H1>";
		#}

		#@Letters = ("A", "B", "C", "D", "E", "F", "G", "H", "I", "J", "K", "L", "M", "N", "O", "P", "Q", "R", "S", "T", "U", "V", "W", "X", "Y", "Z");
		print PRODHEADFILE "<B><FONT size=\"4\"> Go to:\n";
		foreach $letter (@Letters) {
# below changed by Marc
			#print PRODHEADFILE "<A HREF=\"?DEST=$catword&L=$letter\">$letter</A>\n";
			print PRODHEADFILE "<A HREF=\"?DEST=products&L=$letter\">$letter</A>\n";
		}
		$~ = "CATHEADEREND";
		write PRODHEADFILE;
		close (PRODHEADFILE);
 
		&PrintHtml("<DD>", "\tproducts.html page created.\n", "<BR>");

		select($old);
	}
}
##############################################################################
# MAIN PART: Decode the parameters and calls the correct subfunctions
##############################################################################
#$arg0=$0
#$DIR=$arg0:h
#$ProgName=$arg0:t

#if ("X$DIR" == "X$ProgName") {
    #$DIR='.'
#}

#if (-e "./$ProgName") {
	#$DIR=$cwd
#}

#cd  $DIR
#print `pwd`;

#
# Create the category pages seen in the categories.txt file
#

#foreach $en (sort keys %ENV) {
	#print "$en = $ENV{$en}\n";
#}


	$CATS = "false";
	$APPLETS = "false";
	$COMP = "false";
	$CHECK = "false";
	$REPORT = "false";
	$HTML_FORMAT = "false";
	$PROD = "false";
	$SOFT = "false";
	$PLATFORM = "sparc";

	$DIR_IMAGES = "http://localhost:7999/SunSolutions/images/";
	$PRODUCTS_DIR = "../";

	# parse command line arguements

	#print "Arg=@ARGV.\n";
	@ARGREPORT = @ARGV;
	if (@ARGV == 0) {
		@ARGV=("-?");
	}

		while ($ARGV[0] =~ /^-/) {
			$_ = shift;
			#print "Arg=$_.\n";
			if (/^-cats$/) {
				$CATS = "true";
			} elsif (/^-applets/) {
				$APPLETS = "true";
			} elsif (/^-comp/) {
				$COMP = "true";
			} elsif (/^-checkall/) {
				$CHECK = "true";
				$CHECKLINKS = "true";
			} elsif (/^-checklinks/) {
				$CHECKLINKS = "true";
			} elsif (/^-check/) {
				$CHECK = "true";
			} elsif (/^-soft/) {
				$SOFT = "true";
			} elsif (/^-report/) {
				$REPORT = "true";
			} elsif (/^-html/) {
				$HTML_FORMAT = "true";
                        } elsif (/^-names/) {
                                $NAMES = "true";
			} elsif (/^-dir/) {
				$PRODUCTS_DIR = ($1 ? $1 : shift);
				unless (-s $PRODUCTS_DIR) {
					die "ERROR: $PRODUCTS_DIR is not a directory\n";
				}
			} elsif (/^-prod/) {
				$PROD = "true";
			} elsif (/^-all/) {
				$PROD = "true" ;
				$COMP = "true";
				$SOFT = "true";
				$APPLETS = "true";
				$CATS = "true";
				$NAMES = "true";
			} elsif (/^-x86/) {
				$PLATFORM = x86;
				$SRC_DIR = "../../../x86.image";
			} elsif (/^-[?Hh]/) {
				die "Usage: update.pl [ -cats | -applets | -soft | -prod | -all | -dir dirname | -x86  | -report | -html | -names | -check]\n\tall: = -cats -prod -applets\n\tapplets: creates an applet in the customer home page.\n\tcats: creates the category and company pages.\n\tcheck: check the _info file, and other things for errors.\n\tdir: gives the directory where the companies are located.\n\thtml: when -report is selected, creates an output in HTML format.\n\tnames: create list of company names keyed on directory name.\n\tprod: creates the product page.\n\treport: creates a report for all companies.\n\tsoft: creates the Software pages\n\tx86: for future usage.\n";
			} else {
				die "Unrecognized switch: $_ (try -?)\n";
			}
		}

&PrintHtml("<HTML> <HEAD> <title>Sun Solutions - status on " . `date` . "</title> </HEAD> <BODY BACKGROUND=../SunSolutions/images/back3.gif bgcolor=\"#DDDDDD\"><H1>", "Sun Solutions - status on " . `date` . "\n", "</H1>");


# check if root user
if ( $ENV{"USER"} ne "root" ) {
		&PrintHtml("", "WARNING: This program should be run as root user.\n", "<BR>");
	}


	if ($REPORT ne "true") {
		$HostName = `hostname`;
		chop $HostName;
		&PrintHtml("", "\nUpdating Sun Solutions on $HostName:\n\n", "<BR>");
	if (open (REPORTFILE, ">> $PRODUCTS_DIR/.update.txt")) {
		$Date = `date`;
		chop $Date;
		print REPORTFILE "update by " . $ENV{"USER"} . " on $Date from $HostName\n\tparams: ";
		while (@ARGREPORT) {
			print REPORTFILE "$ARGREPORT[0], ";
			shift @ARGREPORT;
		}
		print REPORTFILE "\n\n";
		close (REPORTFILE);
	} else {
		&PrintHtml("", "WARNING: Cannot open $PRODUCTS_DIR/.update.txt\n", "<BR>");
	}
}

&InitCompInfo();

$CAT_DIR = "$PRODUCTS_DIR/.categories";
$FRAMEBASICNAME = "SunSolutions.frame.html";
$HEADBASICNAME = "SunSolutions.head.html";
#print $CAT_DIR;
if ( ! -d $CAT_DIR ) {
	mkdir($CAT_DIR, 0777);
}

if ( $CHECK eq "true" ) {
	&CheckFiles();
}
if ( $NAMES eq "true" ) {
        &CreateNames();  
}


if ( $CHECKLINKS eq "true" ) {
	&CheckLinks();
}

if ( $CATS eq "true" ) {
	&CreateCat();
}

if ( $SOFT eq "true" ) {
	&CreateSoft();
}

#
# Get all SunSolutions menu bar components and put in file 
# for building of front page applet 
#
if ( $APPLETS eq "true" ) {
	&CreateApplet();
}

if ( $PROD eq "true" ) {
	&CreateProduct();
}

if ( $REPORT eq "true" ) {
	&CreateReport();
}

#
# Compile list of companies, place in 'companies' file
#
#if ( $COMP eq "true" ) {
	#&CreateComp();
#}

#
# Compile list of products, place in 'products' file
#

#print "\n\n\nPress <RETURN> to close the window and test your submission..\n.";
#read answer;

################################################################################
# Define FORMATS (no more code)
################################################################################
format CATHEADERBEGIN =
<html>
<body  BGCOLOR="#8c8cde" link=#33ff00 vlink=#33ff00 >
<BASE TARGET="_top" HREF="http://localhost:7999/cgi-bin/show.bat/">
<center>
<form method="get"  ACTION="http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions">
<table border = 3><td>
<MAP Name="banner">
.

format CATHEADERMIDDLE =
</MAP></td><tr><td><center>
<B><FONT size="4">
#<B>Go to:&nbsp&nbsp</b>
.

format CATHEADEREND =
#<br>&nbspSearch: <input type="text" name="isindex" size="12" >
</font>
</td><tr></table>
</form>
</center>
</body>
</html>
.

format CATBEGIN =
<HTML>
        <!-- header section-->
<HEAD>
<title>Sun Solutions - October</title>
</HEAD>
        <!-- document body-->
<BODY  BACKGROUND=../SunSolutions/images/back3.gif bgcolor="#DDDDDD">
<BASE TARGET="_top">
<DL>
#<hr>
#<p>
.

format CATEND =
</B></B><DT>
<hr>
</BODY>
</HTML>
.

format SOFTWAREHEAD =
<HTML>
        <!-- header section-->
<HEAD>
<TITLE>Sun Solutions - Software Categories</TITLE>
</HEAD>
        <!-- document body-->
<BODY BGCOLOR="8c8cde" link=#33ff00 vlink=#33ff00>
<CENTER>
<BASE TARGET="_top" HREF="http://localhost:7999/cgi-bin/show.bat/">
<form method="get"  ACTION="http://localhost:7999/cgi-bin/brandnewwais.pl/wais_SunSolutions">
<table border = 3><td>
<IMG border=0 SRC="http://localhost:7999/SunSolutions/images/software.gif" alt="" USEMAP=#banner ismap>
<MAP Name="banner">
<AREA SHAPE="RECT" HREF="?DEST=companies" COORDS=7,12,69,40>
<AREA SHAPE="RECT" HREF="?DEST=products" COORDS=3,48,69,80>
<AREA SHAPE="RECT" HREF="http://localhost:7999/SunSolutions/docs/info/Info.html" COORDS=73,6,142,46>
<AREA SHAPE="RECT" HREF="http://localhost:7999/SunSolutions/index.html" COORDS=72,40,143,85>
<AREA SHAPE="RECT" HREF="http://localhost:7999/SunSolutions/index.html" COORDS=200,0,595,74>
</MAP>
</TD><TR><TD>
<CENTER>
<FONT size="4">
#<br>Search: <input type="text" name="isindex" size="12" >
</font>
</CENTER>
</td><tr></table>
</CENTER>
</form>
</BODY>
</HTML>
.
##############################################################################
format FRAMEHEADER =
Content-type: text/html



<html>
<head>
<title>Sun Solutions October 1996</title>
</head>
<FRAMESET ROWS="20,80">
#$size
.
##############################################################################
format FRAMEFOOTER =
<BODY BACKGROUND="icons/bkgrnds/homebg.gif" body  BACKGROUND=../SunSolutions/images/back3.gif bgcolor=black text=#ffffff link=#dddddd alink=#ffff00 vlink=#bbbbbb>

<FONT SIZE=-1>Copyright \0511995 <B><A

</BODY>
</NOFRAME>
</FRAMESET>
</HTML>
.
